package com.yang.controller;
import com.yang.pojo.Admin;
import com.yang.service.AdminService;
import com.yang.util.JwtUtil;
import com.yang.util.ResponseResult;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author 朝阳
 * @since 2021-11-24
 */
@RestController
@RequestMapping("/admin")
public class AdminController {

    @Autowired
    private AdminService adminService;

    @ApiOperation(value = "你好")
    @GetMapping("/hello")
    //@PreAuthorize("hasAnyAuthority('admin','user')")//hasAnyAuthority方法可以传入多个权限，只有用户有其中任意一个权限都可以访问对应资源。
    //@PreAuthorize("hasRole('admin')") //权限 会往你权限前面加个ROLE_来拼接，对于权限来说需要格式匹配 hasRole要求有对应的角色才可以访问，但是它内部会把我们传入的参数拼接上 **ROLE_** 后再去比较。所以这种情况下要用用户对应的权限也要有 **ROLE_** 这个前缀才可以。
    //@PreAuthorize("hasAnyRole('admin','user')") //hasAnyRole 有任意的角色就可以访问。它内部也会把我们传入的参数拼接上 **ROLE_** 后再去比较。所以这种情况下要用用户对应的权限也要有 **ROLE_** 这个前缀才可以。
    //获取自定义的权限
//    @PreAuthorize("@ex.hasAuthority('admin')")
    public String hello(){
        return "hello";
    }

    @ApiOperation(value = "登录")
    @PostMapping("/login")
    public ResponseResult login(Admin admin){
        System.out.println(admin);
        return adminService.login(admin);
    }

    @PostMapping("/logout")
    public ResponseResult logout(){
        return adminService.logout();
    }
//    @PostMapping("/updataOneAdmin")
//    public Result updataOneAdmin(@RequestBody Admin admin){
//        String regex = "^.{3,32}$";
//        if (admin.getAdminname().matches(regex) && admin.getAdminpassword().matches(regex)){
//            admin.setAdminid(admin.getAdminid());
//            admin.setAdminname(admin.getAdminname());
//            admin.setAdminpassword(admin.getAdminpassword());
//            boolean i = adminService.updateById(admin);
//            if (i == true){
//                return new Result(100,"更新成功",i);
//            }else {
//                return new Result(200,"代码有问题请联系QQ：2655906529");
//            }
//        }
//        return new Result(200,"格式错误");
//    }
}

